Jikes News: 19 October 1999

by Dave Shields

Many of the links that used to point to files on this site have been adjusted to point to our new home on developerWorks, including the FAQ, contributors list, downloads, etc.

Jikes News: 24 September 1999

Glenn Kasten joins Jikes Project Core Team

The Jikes Core Team is pleased to announce that Glenn Kasten has accepted our invitation to join the team.

Jikes on the move

Most of the files have been copied over to our new home at ibm.com/developerworks/opensource, including development and stable versions. I have started a new Jikes News file there.

I hope to see you over at developerworks; look there for news of further developments. The above URL is for the main entry point; the Jikes Project pages, similar in structure to our current pages, can be found at http://www10.software.ibm.com/developerworks/opensource/jikes/project.

Problems re -d, -depend +F

To those who have encountered problems using the above options, or who have followed the recent mail on the Jikes lists about this topic, I have started a (hopefully) short-term project -- in our new home -- to sort this out. The underlying issue that needs to be resolved is the classpath search order, so I have named it CSO: CSO Project

Jikes News: 21 September 1999

Roly Perera joins Core Team

The Jikes Core Team is pleased to announce that Roly Perera has accepted our invitation to join the team.

FAQ explanation of +F and -depend revised

The FAQ (jikes.htm) has been revised to include an expanded explanation of the +F and -depend options.

The revised version is currently only available via our Research web site, as we are moving the CVS tree over to our new home.

google.com now available, good job for Jikes

Slashdot just ran a story that the new search-engine google.com is now officially up. It seems to do a pretty good job for Jikes.

Single multi-tier application using almost every version of Jikes

Brad Smith recently posted the following note to the Jikes alphaWorks' discussion area. It's the first time I've seen mention a single project that was using Jikes on so many platforms, and using so many versions of Jikes at once:
We are designing and building a multi-tier java application in which we use Jikes to compiled the sources. We recently ran into a problem that had us baffled for several weeks but we finally solved last thursday.

Our development group uses NT, Windows 95, Linux and OS/2 PCs. We test the middle tier components on OS/2 and AIX. Client components run mainly on Windows 95, but we also test on Linux and OS/2 and NT.

The application would work smoothly on most of the developer's systems but when we moved the middle tier to AIX, some clients were have problems with messaging classes that were being shipped from the server to the client and generating exceptions. We could not isolate the problem. When it did show up, it was always there, but when it would show up was baffling.

Finally at the 11th hour before user training we found the problem: different versions of Jikes were being used for different OS's and/or client vs middle tier components. Once we used the same Jikes compiler across the board the problem went away. Some of us had 0.55, other 1.02.

So, if you are having unusual problems with distributed applications, double check to make sure the test code is all built with the same version of Jikes.

Jikes has been and continues to be a very useful and important tool. This is just a caution based on our experience.

Brad Smith

alt.sysadmin.recovery thread re Jikes' error recovery and reporting

I recently discovered, courtesy of deja.com, the following discussion about Jikes' error recovery and reporting. When I showed it to Philippe, he remarked the main motivation for the spell-checking is to help users who have forgotten the convention of identifier names with an initial lower case letter; for example, to note that ToString should be toString
Forum: alt.sysadmin.recovery 
Subject:  Re: Buzzword Check
Date: 1999/09/20
Author: Paul Tomblin 


In a previous article, michael@farmasi.uit.no said:
>Getting rid of the useless "there's a missing semicolon on line blah, aborting
>compilation" errors was reason enough to give up Pascal. Quickly. If the
>parser is "intelligent" enough to recognize *what* is missing, why doesn't
>it just *insert* the symbol (and warn me about it) instead of aborting
>compilation? Luser-language implemented luserish...
 
I've only seen two compilers that attempt to do that.
 
One of them I used 20 years ago, and it was called "SP/K", and it was
a subset of PL/1.  Every attempt it made to "fix" the compiler errors
was guaranteed to cause billions more compilation errors further on.
Once it made an attempt to "fix" something, you couldn't trust any
more compiler messages in the rest of the file, because most of them
were caused by the "fix". 
 
The second one is "jikes", the hyperfast java compiler from IBM.  It
only attempts a fix when it's something trivial like a missing
semi-colon, and it does a pretty good job of figuring out where it
belongs.  An even cooler feature is when it says something like "I
see you've used an undeclared variable `foob' on line 227.  There is
a declared variable `food', maybe that's what you intended."  The
amount of effort it goes through to find similar variables and
methods is startling.
>> Forum: alt.sysadmin.recovery 
>> Thread: Buzzword Check 

Subject: Re: Buzzword Check
Date:  1999/09/20
Author: Alan J Rosenthal 

ah, I used sp/k briefly, at about that time... say no more...

I switched to real pl/1 quickly, although I then had to do without
the "picture" formatting option (like BASIC's "PRINT USING").. I
remember sitting in the corner between keypunches with a pl/1 manual
borrowed from the consultants' desk trying to find its analogue,
before I concluded it was just not available... ok I'll admit I
learned pl/1 via sp/k, and so did you it sounds like...
 
>There is a declared variable `food',
 
You seem to think this is cool, but I think it's stupid.
 
Mostly I think that this whole concept of trying to compile what the
user might have meant instead of what they said is obsolete.  The
only use for error recovery these days is to be able to give people
the full list of error messages in one go, or at least a big chunk of
them so that they don't have to type "make" once per error however
minor.  So "undeclared variable" suffices in this case, and move on,
and stop trying to generate code because you're going to exit with a
fatal error anyway.
 
In the old days where that missing semicolon meant that after you
retyped the punch card you had to submit your deck and wait another
two hours (or even ten minutes), the "guessing" behaviour got us
something.  I'm astonished that a modern compiler does it, although
given that a modern compiler does do it I'm not astonished that it's
something from IBM, which is not a company known for moving with the
times.

Subject: Re: Buzzword Check
Date:  1999/09/20
Author:Paul Tomblin 

 
Ah, but unlike sp/k jikes doesn't then try and generate code with
it's attempted fixups, it just generates messages.  The second thing
I mentioned (finding close but not quite variable names) is just part
of the diagnostic message, it doesn't actually try and compile with
whatever it guessed.  Which is fine, because if it did, you know that
would lead to 450 billion cascading messages because the types didn't
match, etc.
 

Jikes News: 17 September 1999

Ken Coar joins Core Team

The Jikes Core Team is pleased to announce that Ken Coar has accepted our invitation to join the team.

New Development Version, v1.06

This version adds the option -Xdepend. It does the same thing as -depend, and was added for 1.2 JDK compatibility.

A bug uncovered navigating the troubled waters of PR 490 was of sufficient severity to justify the release of a new version. We also recently noted some erratic behavior using incremental compilation, and so have temporarily disabled the '++' option while we sort things out.

Jikes News: 16 September 1999

Jikes Project to move to developerWorks

IBM is providing a new home for its software licensed under the IBM Public License, http://ibm.com/developerworks/opensource, and hopes to encourage increased participation in its open-source projects by providing increased authority, resources, responsibility and support to companies and individuals interested in collaborative development.

Though the new developerWorks open-source section will not be officially announced for a couple of weeks, we are announcing it now to the Jikes community -- to let you know what's going on, and to ask for your help, patience and understanding while we work with the developerWorks staff to bring up the Jikes portion of the site. We would appreciate your discretion about spreading the news, as we don't wish to steal any of the thunder that is undoubtedly being planned by our PR people for the formal announcement.

The Jikes Project will be managed by the Core Team, which will be responsible for the CVS source tree and other content of the Jikes Project section of developerWorks. The current members are Philippe Charles, Michael Ernst, David Shields and Vadim Zaliva. The Core Team elects Contributors and new members of the Core Team.

The project's new site will provide:

Other features under consideration include anonymous ftp and a discussion capability.

Our "public address" -- the one to be used in documentation and in informal discussion -- will be "Jikes Project at http://ibm.com/developerworks/opensource". However, we will not be using the primary developerWorks' server, but will share a separate Linux-based machine with the other open-source projects. The main page URL is http://www10.software.ibm.com/developerworks/opensource/jikes/index.html and the URL for the project-owned pages is http://www10.software.ibm.com/developerworks/opensource/jikes/project/. I'm told these URLs should appear soon; as soon as they do, we will start a "News" section there about the transition process.

You should continue to use our currrent site (http://ibm.com/research/jikes) to obtain news, to download files, and to report bugs -- we don't want to move all the work over until everything is in place. We plan no further releases until the CVS tree has been moved, unless a real "show-stopper" bug surfaces.

New Development Version, v1.05

Problem Report Resolved:

The URL's in the documentation files have been changed to point to developerworks.

New Development Version, v1.05

Problem Reports Resolved:

The URL's in the documentation files have been changed to point to developerworks. There is also a revised man page (something I forgot to mention in the v1.04 release note).

Jikes News: 14 September 1999

New Development Version, v1.04

Problem Reports Resolved:

Three problem reports (462, 463, 468) that suggested better error messages for certain syntax errors have been closed out, as Jikes uses tables generated by the Jikes Parser Generator to detect and report syntax errors, and it is not possible to customize syntax-related error messages.

Jikes News: 10 September 1999

New Development Version, v1.03

Problem Reports Resolved:

Jikes News: 7 September 1999

Jikes now included in Red Hat distribution

Red Hat has added Jikes to their main source tree. V1.02 is included in the "Lorax" public beta announced yesterday.

Jikes is also included in the Debian and FreeBSD distributions.

CVSWeb access and CVS read-only mirror now available

Ken Coar (Apache Software Foundation, Apache Server for Dummies) writes:
Whew! Finally! You should now be able to access a copy of the master Jikes CVS repository and check stuff out from it (though not check anything in). It's updated every six hours. CVSWeb is also available on it. Please send me mail if you encounter any problems; there may still be a few glitches.

The site, Sourcery.Org, also includes an interesting free-source participation survey. The URL's for Jikes-related features on his site are:
Sourcery Jikes Area
Web view of Jikes CVS repository
Read-only Jikes CVS Mirror Access

Ken also rendered early service to Jikes in setting up our mail-list server.

Jikes News: 1 September 1999

New Development Version, v1.02

Problem Reports Resolved:

This version also includes a new version of the FAQ (jikes.htm). A "Provides: jikes" entry has been added to jikes.spec, at the suggestion of Shane Owenby, based on a recent discussion in the rpm mailing list.

Jikes News: 25 August 1999

New Development Version, v1.01

Problem Reports Resolved:

This version also

Why V1.01?

Alert readers will note that this version is v1.01 and not the v0.56 that would be expected. We decided that, having put out more than 50 releases since late 1996, this was a good time to end the "early test phase".

Changes to build process, downloads

I had need lately to learn more about RPM (I found Henner Zeller's spec file very helpful). This led to a review of the current build/download process, and has resulted in the following changes:

Good news re Jikes license and Debian

The following is from Mike Goldman, a member of the Debian team, in response to my query about their reaction to the new license:

The consensus opinion seems to be that the new Jikes license is DFSG-compliant, and consequently it is planned that Jikes *will* ship in the main Debian distribution (rather than contrib or non-free). It is already in the main "potato" archive. There has been some concern expressed that Jikes is "incompatible" with the GPL (the GNU "General Public License") -- that is, GPL source cannot be legally combined with Jikes source -- but that is not in and of itself fatal.

Jikes News: 28 July 1999

New Development Version, v0.55

Problem Reports Resolved:

New files segment.cpp and segment.h

This version includes two new files; the build-related files have been updated. If you are using your own makefile then you will have to make the corresponding additions. These files support new function that does a better job avoiding redundant entries in the constant pool.

Jikes News: 26 July 1999

New Development Version, v0.54

Problem Reports Resolved:

This version includes revised code generation for try/catch/finally that more closely follows the examples and description in the Java Virtual Machine Specification. Previous versions of Jikes generated bytecode that in some cases included instructions that were unreachable. Even though they passed verification on most platforms, problems with verification on the Solaris platform suggested a careful revision was in order.

Files bool.h and unicode.h removed

These files are no longer needed, and the build-related files have been updated. If you are using your own makefile then you will have to remove any references to bool.h or unicode.h.

Support for option -Xstdout

Jikes now recognizes the option -Xstdout to request that error messages be written to the standard output file; by default they are now written to the standard error file.

RPM file for Jikes

Henner Zeller has made available RPM file for Jikes Relocatable. We have added his file jikes.spec to the set of source files to help those wishing to build their own RPM versions.

Auto-detect for bool when compiling Jikes

This version includes a patch from Larry Gensch who wrote: "I've added a test in your configure.in script in jikes-052 to auto-detect the presence of the "bool" keyword (ANSI C++)."

Illegality of "class C implements C.I"

We recently filed Query #31 to Sun. It relates in part to the legality of the following construct found in some versions of swing:
  class C implements C.I {
  ...
    interface I { ... }
  ...
  }
Sun's response agrees with our interpretation that this usage is illegal.

Jikes News: 24 June 1999

New Development Version, v0.53

Problem Reports Resolved:

This version adds support for the -deprecation option.

Applied patch to configure.in for mips from Henner Zeller.

Jikes and BeOS

Russ Blaisdell writes (23 June 1999):
I have been working with BeOS in my spare time and have found that Jikes compiles and runs on BeOS (Intel version) without having to change anything (neither makefile or source).

Jikes News: 17 June 1999

IBM Public License Version 1.0

Beginning 17 June 1999 we are using the IBM Public License Version 1.0. This applies to versions of the compiler starting with v0.52, and will be used when we next update the Jikes Test Suite and Jikes Parser Generator: IBM Public License Version 1.0 - Jikes Compiler.

IBM JDK for Linux available

IBM has just released JDK 1.1.6 for Linux/Intel. This release requires 2.2 kernel, glibc 2.1, LessTif 0.88, and uses native threads. It includes a good JIT.

New Development Version, v0.52

Problem Reports Resolved:

A Jikes Documentation Project

Tim Daly writes (11 June 1999) that he has started a project to document Jikes internals. You can download jikesDoc.jar from http://www.idsi.net/~daly. He reports that Netscape wants to open this file by default so be sure to right-click on the file and choose "Save link as".

Jikes News: 27 May 1999

New Development Version, v0.51

Jikes at LinuxExpo

I represented Jikes in the IBM booth at the just-concluded LinuxExpo in Raleigh, NC. Several people expressed interest in using Jikes once they saw its speed. One of the Java managers from SGI mentioned they had ported Jikes as soon as the source came out; the only complaint from their developers was that they now had less time for coffee breaks.

I gave two talks (one on the technical track, another on the business track) with emphasis on our experiences after releasing the source. About 70 people attended the first talk, about 30 the second.

I understand about 4000 people attended the Expo. Rob Malda of Slashdot stopped by to chat, and mentioned that IBM's booth was bigger than the entire exhibit area at last year's expo.

Another Jikes for Amiga

Tim Corringham writes (24 May 1999) that he is provoding binary versions for another Amiga version, this one using Unix style file notation, and requiring the ixemul Unix compatibility library. Details in the Ports Section.

Jikes for SCO UnixWare 7

Jerry Heyman writes (27 May 99): that SCO is providing a version for UnixWare 7 (currently v0.41). Details in the Ports section.

Jikes News: 9 May 1999

New Development Version, v0.50

This version consists mainly of changes to the code generator, as what began as a modest review turned into a major "spring cleaning". The code generator was recomputing some information that had already been computed by the front-end, and had otherwise not been updated to reflect many of the front-end changes recently put in place. There may be some regressions since we have touched parts of the code that have been stable for some time.

There are also a couple of bug fixes, consisting of some improved error messages, and a fix for a bad assert in ast.h that was recently reported.

Version number now part of download file name for Jikes compiler

In response to several user requests, the file names for downloading the compiler now include the version number: jikes-050_tar.gz, etc. We will put version numbers on file names for jikestst and jikespg when they are next updated.

Jikes for Amiga

Kriton Kyrimis is now producing binaries of Jikes for Amiga; see the "Ports" section for details.

Jikes at LinuxExpo in Raleigh, May 18-22

Jikes will be part of the IBM presence at the Linux Expo at the Raleigh Convention Center in Raleigh, NC, May 20-22. I will be at the IBM Booth, and will also give a talk on our experience starting and running the Jikes project, and plan to emphasize what has happened since we released the source in December, 1998. I would like to include user feedback in the talk, as noted below.

Request for User Feedback

We have started a section Feedback in the Jikes Discussion Database where you can make comments and suggestions about the Jikes Project. Suggestions on how we can do a better job are especially welcome.

We plan to include a summary of the comments received in the talk to be given at LinuxExpo.

Jikes News: 16 April 1999

New Development Version, v0.49

This version fixes a bug (reported on jikes-bugs on 14 April) related to calling a private method in an enclosing class that was introduced in v0.48.

Jikes News: 14 April 1999

New Development Version, v0.48

Bill Pugh of the University of Maryland pointed out that Jikes should use static methods to enable access to private fields and methods of enclosing types, and Jikes now generates static methods.

Several readers sent in problem reports related to the handling of "international" characters in the input source, and included examples that demonstrated the problem was in a faulty table used to represent the classification of Unicode characters. Instead of trying to interpret the various descriptions of Java's interpretation of Unicode, we have added a new program gencode.java that probes the classification used by the Java library and writes out the source for files code.h and code.cpp. We obtained the same results running Sun's reference VM for Windows for JDK versions 1.1.6 and 1.2.

This work also uncovered a problem in the handling of these characters for Solaris Sparc. Turns out that the type wchar_t was declared as a long and when a char value (even unsigned char) was copied to a wchar_t, it was sign-extended. This problem used to cause Jikes to crash on some inputs.

New option +M=filename to list direct dependences

Jikes now supports a new form of the +M option, +M=filename, to request a direct dependence report be written to the specified file. Each clause begins with a line of the form

    file_specification : class_name
which gives the file containg the definition of a class. The file specification is either the name of a file or the name of a jar or zip file followed by the name of a member of the file enclosed in parentheses.

A clause may be followed by zero or more lines containing the names of classes directly referenced by the class; each such line begins with whitespace. A reference introduced as the result of referencing the value of a static final constant is preceded by an exclamation point (!).

Class names are given in the internal form for a fully qualified name used by the Java virtual machine (section 4.2 of the JVM specification).

This option represents our first attempt to answer a number of requests to provide a report of the dependence information in a form other than a Makefile, and is based in part on recent discussions with Roger Hoover of NaturalBridge. Note that the format may change, as this is a work in progress.

Our intent is to provide a format suitable for writing tools that analyze dependence, and not to provide the tools as part of the compiler itself.

Jikes for Linux Power PC

Keith Clayton is now producing binaries of Jikes for Power PC. The URL can be found in the "Ports" section.

Status, Plans

We have still not had time to add all the 1.2-related command-line options; look for them in the next version.

We are still working through the 1.2 JCK (Java Compatibility Kit) tests. There remain a small number of discrepancies in the results that need to be sorted out. We also hope to have this done by the next release.

We have fallen behind responding to some of the recent mail and bug reports while getting this version ready, and plan to deal with the backlog as soon as we work through the 1.2 tests.

Building Jikes with Microsoft's C++ compiler

We have cautioned in the past about using Microsoft's compiler to build Jikes since we had noted some different results in some of the floating-point arithmetic tests in version 1.1.4 of Sun's JCK. We recently re-ran these tests using a version of Jikes compiled with version 6.0 of Microsoft's Visual C++ compiler, and found that while this version failed one test that passed using our current (IBM) compiler, it also passed another test that failed when using Jikes built using the IBM C++ compiler. Both problems were in the fringe area of floating-point support. In any event, we no longer see any reason not to use VC++ to compile Jikes.

We will also review the use of Microsoft's compiler after completing the review of 1.2 test results, as this version of the JCK contains a large amount (about 200,000 lines) of tests of floating-point arithmetic.

Jikes News: 16 March 1999

New Stable Version, v0.47

We have updated the stable version on alphaworks Jikes to v0.47. Note that the URL for Jikes on alphaworks is now http://www.alphaworks.ibm.com/tech/jikes

We're almost done adding the 1.2-related changes to Jikes. Remaining work includes some new options, and some outstanding bug fixes; we expect to put this out soon.

Improved access to CVS tree

Ken Coar is helping to provide better access to the CVS source tree. We plan to make available a mailing list whose subscribers will receive an e-mail in "patch" form for each source commit as it is made, and plan also to offer "cvsweb" access, in the same form as used by the Apache group; see for example Apache cvsweb server

We have also dropped the latest-cvsjikes_tar.gz file, as we have found it more convenient and useful to provide new versions in both binary and source form, rather than to provide just a snapshot of the CVS tree, in a form only useful to those with CVS and willing to compile the source.

Jikes News: 19 February 1999

Development V0.44 available

Jikes News: 12 February 1999

V0.43 available, adds support for Java 1.2

Version 0.43 supports the Java 1.2 (aka Java 2) language changes.

"Development" and "Stable" versions

Beginning with this release, we will distinguish the "development" version of Jikes from a "stable" version. We will first publish development versions on our Research web site, and will promote a version to stable status by publishing it on the alphaworks site only after it has survived a few days of use in the field.

If you are just interested in using Jikes to compile your program then you should Download the stable version. We will announce a new stable version only after alphaWorks has published it, via our mailing lists; you can subscribe via

    echo subscribe | mail jikes-announce-request@watson.ibm.com

We will also discontinue publishing the source for the test suite and parser generator at alphaWorks, and only provide it from the Research site.

If you wish to live on the "bleeding edge" and work with development versions as they appear, then you should Download the development version. You should also follow the relevant mail lists:

    echo subscribe | mail jikes-announce-request@watson.ibm.com
    echo subscribe | mail jikes-request@watson.ibm.com
    echo subscribe | mail jikes-bugs-request@watson.ibm.com
    echo subscribe | mail jikes-patches-request@watson.ibm.com

Ports for OS/2, FreeBSD available

The Ports section now has links to these new distributions.

Jikes for Solaris

We currently provide a binary version for Solaris Sparc built using IBM's C++ compiler.

We understand some users working with the source use Sun's compiler while others use gcc or egcs. We have gotten a number of e-mails and patches related to the Solaris version, and have updated the Makefile. We would like to clear up any outstanding issues soon and ask our Solaris users to try to build the compiler on their system and report any problems.

Note that some users have reported problems relating to use of "IFDIR", etc. If you have similar problems review file config.h especially the section re STAT_POSIX near the start, as you may need to specify -DSTAT_POSIX in the Makefile.

We would also appreciate a volunteer willing to build binary versions for Solaris Intel and publish them on the web. Let us know if you are interested and we will add the URL to the Ports section.

What is the Jikes Discussion Database? When do I need to use it?

From time to time you may see mention of the "Jikes Discussion Database", usually as part of a note about a problem report.

We started the database about one year ago. It's a Lotus Notes Database, published to the web using Lotus Domino. You can access it via Jikes Discussion Database. There is also a link to it on the main Jikes page at Research.

It was our main vehicle for communicating with our users before releasing the source, and contains problem reports, suggestions, comments, e-mail with Sun, etc.

Though we now publish files and news on our web site, we continue to use the Database for the following:

The user interface leaves much to be desired. You will be presented with an initial page giving instructions. Click on "By Topic" to proceed.

Jikes News: 4 February 1999

Downloads now available from Jikes Web Page

We will now publish new releases first on our web page. New releases will include a snapshot of the CVS source tree at the time of the release, flattened copies in "zip" and "gzip" form of the sources for those who just want to work with particular parts or who don't have CVS, and binaries that we have built from the sources. Part of building a release is running the tests available to us.

"Latest CVS snapshot" section added

We will try to publish snapshots of the CVS source tree at frequent intervals. Note that we make no promises about the snapshots -- the compiler might not even compile, we might not have done any testing, etc.

Source for Jikes Parser Generator

The source for the Jikes Parser Generator Source is now available in the CVS source tree. It is not included in the v0.42 snapshot (which we have already prepared). It is included in the initial "latest" snapshot.

Jikes News: 2 February 1999

Revised license; separation of compiler source and test suite

We are now using a revised license that we believe answers many of the objections raised to the license released in December, though we wouldn't be surprised to see more objections raised about the "termination" clause. We are now using the same language for "termination" as the SecureMailer source release (available from alphaWorks). As always, address questions and comments about licensing issues to the mail list jikes-license@watson.ibm.com. You must subscribe before you can post; instructions on subscribing can be found on the Jikes home page.

Since we anticipate that the compiler source and test suite source will not always be updated at the same time, we have separated them. This also avoids having the "60 per cent" rule apply to their aggregation; it now applies to each separately. The same license is used for each, except for the name: "Jikes Compiler" and "Jikes Test Suite", respectively. The current release is v0.42 (CVS tag v0-42) for the compiler, v1.0 (CVS tag v1-0) for the test suite.

Clarification of license terms for binary distributions

Several users noted that the binaries on alphaWorks were still governed by the standard alphaWorks license, one that does not allow commercial use and expires after 90 days. We now use the same license for binary distributions as for the source, since after all our binary distributions are just a redistribution of the source in binary form.

Version v0.42

We have released a new version of the compiler. This includes a number of bug fixes: , for Problem Reports 270, 297, 298, 300, 302, 304, 306, 308, 309, 311, 312, 313, 315, 320, 321, 324, 326, 331, and 335.

We are continuing to work through outstanding problem reports, and hope to catch up with the backlog soon. At that point we will try to bring the compiler into increased conformance with some of the language changes introduced in the 1.2 (aka Java 2) release of Sun's JDK.

We have revised the FAQ, merging in the material formerly in jikesfaq.htm (the FAQ that accompanied the binary release) and jikesos.htm (the FAQ distributed with original source release) into a new file jikes.htm. Please be sure to read it, especially if you encounter problems with CLASSPATH settings.

CVS source tree

We have started maintaining the source using CVS. Another group at Research is setting up a CVS server machine, and we hope to use that to publish the CVS tree when the machine becomes available. In the interim, we will publish snapshots of the CVS tree in the Jikes Discussion Database.

Jikes at LinuxWorld Expo

Jikes will be part of the IBM presence at the LinuxWorld Expo at the San Jose Convention Center in San Jose, CA, March 2-4. I'll pack the CVS tree in my suitcase and set up shop in the IBM booth. Lacking anything else to do, and if no progress has been made, I intend to work on "-deprecated" support and better reporting of dependence info. Hope to see you there. Two of my fellow contributors, Glenn Kasten and Vadim Zaliva, should be there some of the time.

Ports

We have started a section Ports to describe known ports of Jikes.

Jikes News: 23 December 1998

Work continues on setting up the mailing lists. We hope to have them up next week.

I believe I have caught up with the backlog of bug reports sent to me via e-mail, and have made about 30 new entries in the Jikes Discussion Database in the last two days. I didn't bother to review them all (I'm officially on vacation) but did copy them all over. Some duplicate prior entries, and some may have been fixed in v0.41, but I thought it best just to post them all for the sake of completeness, so we can sort out the proper disposition later.

I have started "Contributors" section, and have posted first cut on our web page. Some of the information is incomplete; I hope to have all the details soon.

Jikes News: 15 December 1998

Patience Please -- we need some rest

The release of the Jikes source has met with an enthusiastic reception. We are very happy about this and look forward to working together actively with our new-found co-developers. We sense everyone is eager to get to work, but we ask your patience.

First, please remember there are only the two of us -- Philippe and myself. We have been working non-stop since early December 1997. The only vacation we took this year was about eight days in early August. I spent that time on the Maine coast; I also spent at least two hours a night reading the comments from Slashdot readers on the issue "Should IBM release the source for Jikes?", preparing a summary of the comments, and starting the proposal to management to release the source. While on his vacation, Philippe spent several hours a day in the Wellfleet public library adding a cache-based file/directory management system; one result of this was to reduce the time needed to compile a 400,000 line subset of San Francisco from 1500+ seconds to 110 seconds on a 150Mhz Pentium laptop running Win95.

I also got quite stressed out getting the source out in time. We didn't get the final wording of the license until Friday noon, just three days before launch. I spent that weekend writing the FAQ and web-site contents, and packaging the files (thanks to Nelson Minar for uncovering a bug in the ZIP version late Sunday evening). Indeed, a couple of weeks ago I had the following exchange with my daughter Jennifer as I was driving her to school:

Dave: I probably have to go into work this Saturday, and perhaps Sunday as well.
Jennifer: Dad, are Saturday and Sunday regular work days at IBM?
Dave: (gulp)
When I related this incident to a senior manager, he said something along the lines of "Not a bad idea!". I'm still recovering, and do need some rest, but promise to be eager to go in the new year.

Philippe is also getting some rest, and says he probably won't be hacking on the code. This is good news, as I feared he would come back from vacation with several thousand lines of diff's for the source. So we will probably all be able to start work with source quite close to that first released once the licensing issues are sorted out.

Thanks for the offers, but ...

One of the arguments we put forth for releasing the Jikes source was that it would help establish a precedent for IBM Research, and also provide useful experience in what is needed to set up a source-based development site and how to run it. Several people and groups have made generous offers to run the mailing lists, provide CVS support, etc. However, it's important that we learn to do it ourselves, even it means some delay to our eager developers chafing at the bit to get hacking.

We will use CVS to maintain the source, and will make available the full source tree in read-only mode. Since IBM Research is still actively involved, only Philippe or I will make actual changes, though we will make every effort to include voluntary user contributions exactly as received, with credit given where credit is due.

I asked Vadim about problem-reporting systems. He says he has used Gnats and likes it. So we'll go with that unless a better suggestion comes in. We hope to have it in place soon.

Vadim named "lord of the patches"

I've asked Vadim Zaliva (lord@crocodile.org) to serve as temporary "lord of the patches" until we add CVS and ftp support, and he has agreed to collect patches for Jikes at his website. You can get them via Jikes Patches.

Yahoo!

Search for "jikes" at yahoo. Nice job, yahoo.

LinuxToday

We thank Dave Whitinger of LinuxToday for posting some of our recent news articles, and especially for his posting of Jennifer's "Shaking Hands" Jikes Masthead. Indeed, he even offered to put it in their banner queue; Jennifer and I are thrilled -- and very grateful.


Jikes News: 11 December 1998

Phone call with Bruce Perens re Jikes License, Jikes Parser Generator

I was a participant in a conference call with Bruce Perens yesterday, along with an IBM manager and attorney. In the words of diplomacy, "It was a frank and open exchange". We discussed Bruce's concerns about the Jikes License and also the question first raised by the Debian group about releasing the source for the Jikes Parser Generator.

At the end of the call, Bruce said he would prepare a report on the call and submit it to slashdot. He graciously offered to send us a preliminary copy for our review. We declined, as we trusted his judgment. We also said we would not write our own report, lest confusion result from two reports trying to relay the same news.

Jikes Mailing Lists

I apologize for the delay in setting up the Jikes mailing lists, and I appreciate the support of slashdot and LinuxToday in posting my notes on their sites, so I could honor my pledge to have all discussions in "full public view".

I ordered a new 6 gig disk for the server machine (100 Mhz Pentium, 32MB memory) a few weeks ago. I had two 1 gig disks. A colleague suggested I should wait for new disk to arrive, as what I had might not suffice to manage the mail lists. The disk arrived yesterday morning. I had a lot of meetings that day, but did find the time to install the disk and did a fresh install of RedHat 5.2.

I've asked for some help in setting up the system. Though I've used Unix for almost two decades, I've hardly ever had the opportunity to log in as root. Indeed, I'm still such a newbie in this area that when I log in as root I still feel a rush -- it's like sitting in a Ferrari and putting the pedal to the metal. Away we go!

Unfortunately, I have proven very adept at doing a great deal of ecological damage to a pristine Linux landscape in a short time. My specialty is reducing /etc/aliases to rubble -- think of the oft-shown TV footage of an old building being demolished by a few pounds of dynamite.

I've asked for help doing things right, and hope it will arrive soon. If not, I'll steam on and promise to be more careful. I will make a best effort to be able to accept subscriptions early next week.

The Jikes Coupon

I drive my daughter Jennifer to school every morning. Ever since the start of the school year, she's been the object of a constant flood of news and concerns about releasing the Jikes source code. She has always been a rapt listener; indeed, I boasted to a friend recently that my daughter was "THE world export in open source licensing issues in the 14-and-under age category".

We both share the same birthday -- December 8. My favorite present was a set of six Jikes Coupons. Here is the text of a Jikes Coupon:

Jikes Coupon
Value: 10 Minutes

This coupon entitles David Shields to 10 free minutes of Jennifer's undivided attention to talk about Jikes or whatever he sees fit. During this time, Jennifer may not think or say in any way, "Oh, gosh, here he goes again." Even phrases such as, "We're playing with the big boys" will be tolerated with a pleasant nod and smile.

I realized that I had mistaken a pleasant node and smile for keen interest and concern. However, I have learned a valuable lesson and it forms the basis of my new policy when asked about open source licensing issues.

While I had a role in drafting the Jikes License, now that it is out it has become the responsibility of the IBM attorneys, and only they have the authority to effect changes to it. My making statements about it, especially misdirected efforts to interpret it, can only lead to confusion. So from now on, when asked to speak about these matters my response will be silent and simple -- a pleasant nod and a smile.

I have great confidence in our attorneys. I know they want to do the right thing. I have found them to be quite pleasant, and have even seen them smile from time to time.

Congratulations to Rob Malda

I know that all fellow members of the slashdot community join me in congratulating Rob Malda on completing the work for his undergraduate degree. Sengan informs me Rob is getting a B.S. in Computer Science, and also a B.A. (or perhaps minor) in the Arts. I regret that I do not know the name of his college. I know he is eager to resume hacking.

Newest Member of the Jikes Team: Vadim Zaliva

We posted the source for Jikes at 1PM EST on Monday, December 7th. I received an e-mail the same day 9:13 PM from Vadim Zaliva (lord@crocodile.org) that included a patch file. He also posted the patch in the "Discussion Area" for Jikes Source at the alphaworks site.

Philippe is on vacation, and I didn't get a chance to speak to him after we published the source until late Wednesday afternoon. He asked me if I had seen the patch at alphaworks. I said I had gotten an e-mail but hadn't had time to look at. He said he was "flabbergasted". Though the patch contains only a few lines, it shows a good understanding of much of the compiler structure. I view this as our first success story, and I am sure there are more to come; I view it as a joint tribute to Philippe's design and Vadim's demonstrated skills.

At the end of the call, we had the following exchange:

Philippe: Dave, this guy is good. Think he could come work with us?

Dave: Philippe, he already is working with us -- and for free!

I asked Philippe to report in full on the technical knowledge displayed, but he has some personal business, and I have gone ahead here, as I did not want to delay recognizing Vadim's work. We are pleased to welcome him aboard as the first contributor to join our project since we released the source (there are other contributors I wish to name for work done before we released the source, and I'll try to provide details on our web site early next week).

It's hard to express a "pleasant nod and a smile" over the internet. It's also hard to express a hand shake. My daughter Jen designed a great masthead for the Jikes web site using a masthead design tool built by Chet Murthy and others (Chet is the guy who used to do the libc5 builds -- I told him he had done his last build late last week). Unfortunately, IBM requires a uniform look-and-feel on its web pages, and I am not able to use her work, though I will put up a copy elsewhere on the Jikes web site soon, and am enclosing a copy of it along with this note, and hope that slashdot and LinuxToday can find a way to display it as a sign of welcome -- both to Vadim and to all the future contributors that I expect to meet soon via the Jikes mail lists.

[ Jen's Gif ]

Announcement posted to Slashdot.org on 7 December 1998


Jikes is Now Open Source

On behalf of IBM Research, Philippe Charles and Dave Shields are pleased to announce that the IBM Research Jikes Compiler is now an Open Source Project. You can download the source now.

We will continue to work on the compiler, emphasizing -- as we always have -- strict adherence to the Java Language Specification, and will also continue to seek Sun's guidance on the proper interpretation of the specification where we find the intent to be unclear.

All discussion will be carried out in full public view using mailing lists. You can subscribe here.

We look forward to collaborating with the Java and Open Source communities to make Jikes an even better compiler, and will welcome voluntary contributions early in 1999 -- after we've all had a chance to get acquainted via the mailing list before hacking away, and after the two of us take some vacation time.

We wish to thank the many Slashdot readers who gave of their time to respond to our query "Should IBM Release the Source Code for Jikes?" (see the Comment Summary) , and also thank Sengan Baring-Gould (slashdot), Nelson Minar (MIT) and Bruce Perens (opensource.org) -- they helped make this happen.